// 用户信息管理模块
export default {
  // 保存用户信息
  saveUserInfo(userInfo) {
    // 存储到 Storage
    uni.setStorageSync("userInfo", JSON.stringify(userInfo))
    
    // 安全地访问全局状态
    const app = getApp()
    if (app && app.globalData) {
      app.globalData.userInfo = userInfo
      app.globalData.isLogin = true
    }
    
    // 存储登录状态
    uni.setStorageSync("isLogin", true)
  },
  
  // 获取用户信息
  getUserInfo() {
    // 优先从全局状态获取
    const app = getApp()
    if (app && app.globalData && app.globalData.userInfo) {
      return app.globalData.userInfo
    }
    
    // 如果全局状态没有，则从 Storage 获取
    const userInfoStr = uni.getStorageSync("userInfo")
    if (userInfoStr) {
      try {
        const userInfo = JSON.parse(userInfoStr)
        
        // 安全地同步到全局状态
        if (app && app.globalData) {
          app.globalData.userInfo = userInfo
          app.globalData.isLogin = true
        }
        
        return userInfo
      } catch (e) {
        console.error('解析用户信息失败:', e)
        return null
      }
    }
    
    return null
  },
  
  // 检查是否已登录
  isLoggedIn() {
    // 优先检查全局状态
    const app = getApp()
    if (app && app.globalData && app.globalData.isLogin) {
      return true
    }
    
    // 如果全局状态没有，则检查 Storage
    return !!uni.getStorageSync("isLogin")
  },
  
  // 获取用户token
  getToken() {
    const userInfo = this.getUserInfo()
    return userInfo ? userInfo.token : ''
  },
  
  // 退出登录
  logout() {
    // 清除 Storage
    uni.removeStorageSync("userInfo")
    uni.removeStorageSync("isLogin")
    
    // 安全地清除全局状态
    const app = getApp()
    if (app && app.globalData) {
      app.globalData.userInfo = null
      app.globalData.isLogin = false
    }
    
    // 跳转到登录页面
    uni.reLaunch({
  }
} 